#include <linux/cpu.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/export.h>
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/kernel_stat.h>
#include <linux/kthread.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/percpu.h>
#include <linux/sched.h>
#include <linux/sched/task.h>
#include <linux/slab.h>
#include <linux/smp.h>
#include <linux/smpboot.h>
#include <linux/time.h>

/************************************************************************************
 *
 *          测试点
 *
 *	线程亲和度 	  绑核问题
 *	smp 	 	mb问题 rmb smb_rmb
 *	smp      	锁问题
 *	barrier  	优化屏障问题
 *	cpu      	位图问题
 *   per-cpu     每cpu变量测试
 *	cpu state	状态查询、设置问题
 *	smp         Cache多核同步问题
 *   单核         数据和指令Cache问题
 *
 *
 * 创建线程A 绑定到CPU0，      线程B绑定到CPU1
 * 对变量a进行多核同步操作测试
 *
 *
 *
 *************************************************************************************/

static void self_test(void) {

}

static int __init test_smp_init(void) {
  pr_info("kenel module init\n");

  self_test();

  return 0;
}

static void __exit test_smp_exit(void) 
{ 
    pr_info("kernel module exit\n");

}

module_init(test_smp_init);
module_exit(test_smp_exit);

MODULE_DESCRIPTION("hello - Linux Lab module example");
MODULE_AUTHOR("jiangxiujie <one_face@sina.com>");
MODULE_LICENSE("GPL");
